![[FEConf] ์คํ์์ค ๊ธฐ์ฌ, ์ด๋ ต์ง ์์์!](/_next/image?url=%2Fassets%2Ffeconf-contributing-to-open-source%2Ffeconf-2024.webp&w=1920&q=75)
[FEConf] ์คํ์์ค ๊ธฐ์ฌ, ์ด๋ ต์ง ์์์!
ํ๋ก ํธ์๋ ๊ธฐ์ ์ ๋ํ ์คํ์์ค ๊ธฐ์ฌ ์ด์ผ๊ธฐ์ง๋ง, ๋ถ์ผ๋ฅผ ๋์ด์ ์คํ์์ค ์ ์ฒด์ ์ธ ์ํ๊ณ์ ๊ดํ ์ด์ผ๊ธฐ์์.
๋ค์ด๊ฐ๋ฉฐ
ํ๋ก ํธ์๋ ๊ธฐ์ ์ ๋ํ ์คํ์์ค ๊ธฐ์ฌ ์ด์ผ๊ธฐ์ง๋ง, ๋ถ์ผ๋ฅผ ๋์ด์ ์คํ์์ค ์ ์ฒด์ ์ธ ์ํ๊ณ์ ๊ดํ ์ด์ผ๊ธฐ์์.
์ ๋ ์ง๊ธ๊น์ง suspensive, @tanstack/query, pnpm ๋ฑ ๋ค์ํ ์คํ์์ค ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ณ ๊ฐ๋ฐํ๋ ํ๋์ ํด์์ด์. ์ด๋ฌํ ์ ์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์คํ์์ค ํ๋์ ์ ์์ํ๊ฒ ๋์๋์ง, ์คํ์์ค๊ฐ ๋ฌด์์ธ์ง ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ๊ธฐ์ฌํ ์ ์๋์ง ๋ฑ ์คํ์์ค ์ํ๊ณ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ์ฌ๋ฌ๋ถ๊ณผ ๋๋๊ณ ์ ํฉ๋๋ค.
ํด๋น ๊ธ์ ํตํด ํ ๋ฒ๋ ๊ธฐ์ฌ๋ฅผ ํด๋ณธ ์ ์ด ์๋ ๋ถ๋ค์๊ฒ๋ ๊ด์ฌ๊ณผ ์ฉ๊ธฐ๋ฅผ ๋๋ฆฌ๊ณ ์ถ๊ณ , ๊ธฐ์กด์ ๊ธฐ์ฌ๋ฅผ ํด๋ณธ ์ ์ด ์๋ ๋ถ๋ค์๊ฒ๋ ์ ์ ๊ฒฝํ๊ณผ ๋ ธํ์ฐ๋ฅผ ๊ณต์ ํ๊ณ ์ ํด์. ์ฌ๋ฌ๋ถ์ ์คํ์์ค ์ฌ์ ์ ์์ํ๊ฑฐ๋ ๋ฐ์ ์ํค๋ ๋ฐ ์ธ์ฌ์ดํธ๋ฅผ ์ป๋ ์๊ฐ์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
์คํ์์ค๊ฐ ๋ญ๊ฐ์?
๋ณธ๊ฒฉ์ ์ผ๋ก ์ ๊ฒฝํ์ ์ด์ผ๊ธฐํ๊ธฐ ์ ์, ๋จผ์ ์คํ์์ค๊ฐ ๋ฌด์์ธ์ง๋ถํฐ ๊ฐ๋จํ๊ฒ ์ดํด๋ณผ ๊ฑฐ์์.
์ฐ๋ฆฌ๊ฐ ์น์ ๊ฐ๋ฐ์ ํ ๋, ์ด๋ค ๊ธฐ์ ์ ์ฌ์ฉํ๋์ง ํ๋ฒ ๋ ์ฌ๋ ค ๋ณผ๊น์? ๋๋ถ๋ถ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ผ๋ฉด React๋ Vue ์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ ์ฌ๋ฆด ๊ฒ์ ๋๋ค. ์์ฆ์ Next.js๋ ๋น ์ง ์ ์์ฃ . ํ๋ก ํธ์๋ ๊ธฐ์ ์ ๋์ด, ๊ฐ๋ฐ์ ๊ตฌ์ฑํ๋ ์์๋ค JavaScript์ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด, ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉํ๋ Git๋ ๋น ์ง ์ ์์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ๋ค์ด ์ฐ๋ฆฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ํ ๋ถ๋ถ์ ์ฐจ์งํ๊ณ ์์ฃ .
์ฐ๋ฆฌ๊ฐ ์ผ์์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ ์ด ๊ธฐ์ ๋ค์ ๋ชจ๋ ์คํ์์ค์ ๋๋ค. ์ฌ๊ธฐ์ ์คํ์์ค๋, ์ํํธ์จ์ด์ ์์ค ์ฝ๋๊ฐ ๊ณต๊ฐ๋์ด ์์ด ๋๊ตฌ๋ ์ ๊ทผํ๊ณ , ์ด๋ฅผ ํ์ฉํด ๊ฐ๋ฐํ๊ฑฐ๋ ์์ ํ๊ณ ๋ฐฐํฌํ ์ ์๋ ์ํํธ์จ์ด(์ฝ๋)๋ฅผ ๋งํด์. ์ฆ, ์ฐ๋ฆฌ๋ ๊ณต๊ฐ๋ ๊ธฐ์ ์ ํ์ฉํด ๊ฐ๋ฐ์ ํ๊ณ ์๋ ์ ์ ๋๋ค.
ํ ๋ฒ ์์ํด ๋ณผ๊น์? ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์คํ์์ค ์ํํธ์จ์ด๊ฐ ๋น๊ณต๊ฐ(Closed)์๋ค๋ฉด ์ด๋ ์๊น์? React๋ Vue๊ฐ ์กด์ฌํ์ง ์๋ ์ธ์์ด๋ผ๋ฉด, ์ฐ๋ฆฌ๋ ์ฌ์ ํ JQuery๋ฅผ ์ฌ์ฉํ๊ณ ์์์ง๋ ๋ชจ๋ฆ ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ฝ JQuery ์กฐ์ฐจ ์คํ์์ค๊ฐ ์๋์๋ค๋ฉด, ํน์ ํ์ฌ๊ฐ ๋ผ์ด์ผ์ค๋ฅผ ๋ ์ ํ๊ณ ์์๋ค๋ฉด ์ง๊ธ์ ๊ธฐ์ ๋ฐ์ ์ด ์์์๊น์? ์๋ง๋ ํ์ฌ์ ๋ชจ์ต๊ณผ๋ ๋ง์ด ๋ค๋ฅธ ๋ชจ์ต์ผ ๊ฒ ๊ฐ์์. ์ด์ฒ๋ผ ํ๋ก ํธ์๋ ๊ธฐ์ ์ ์คํ์์ค ์ํ๊ณ๋ฅผ ํตํด ๋ฐ์ ์ ์ด๋ค๋ค๊ณ ์๊ฐํด์.
์คํ์์ค ๊ธฐ์ฌ ๋ฐฉ๋ฒ
์คํ์์ค๊ฐ ๋ญ์ง ๊ฐ๋จํ๊ฒ ์์๋ดค๋๋ฐ์, ๋ค์์ผ๋ก๋ ์คํ์์ค ๊ธฐ์ฌ๋ ์ด๋ค ๊ฒ์ธ์ง ๊ฐ๋จํ๊ฒ ์ดํด๋ณผ ๊ฑฐ์์.
์คํ์์ค ๊ธฐ์ฌ๋ ์คํ์์ค ํ๋ก์ ํธ์ ๋ฐ์ ๊ณผ ๊ฐ์ ์ ์ํด ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ฐธ์ฌํ๊ณ ๋์์ ์ฃผ๋ ํ๋์ ๋งํด์. ์ด ๊ธฐ์ฌ๋ ๋จ์ํ ์ฝ๋ ์์ฑ์๋ง ๊ตญํ๋์ง ์๊ณ , ๋ฌธ์ ์์ฑ, ์ค๋ฅ ๋ณด๊ณ , ๋ฒ์ญ ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ํํ๋ก ์ด๋ค์ง ์ ์์ด์.
์คํ์์ค ๊ธฐ์ฌ๋ผ๋ ๋ง์ ๋ค์ผ๋ฉด ํํ ๋ณต์กํ ์์ ์ด๋ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ ํฐ ์์ ์ ๋ ์ฌ๋ฆฌ๊ธฐ ์ฌ์์. ๋ฌผ๋ก ๊ทธ๋ฐ ๊ธฐ์ฌ๋ ์ค์ํ์ง๋ง, ์คํ์์ค์ ๊ธฐ์ฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๊ฐ๋ณด๋ค ํจ์ฌ ๋ค์ํ๊ณ ๊ฐ๋จํ ์ ์์ด์. ์คํ๋ฅผ ์์ ํ๋ ๊ฒ, ๋ฌธ์๋ฅผ ๋ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๊ฐ์ ํ๋ ๊ฒ, ๋ค์ํ ์ฌ์ฉ์๋ค์ด ์ฝ์ ์ ์๋๋ก ๋ฒ์ญํ๋ ๊ฒ ๋ฑ ์ด ๋ชจ๋ ๊ฒ๋ค์ด ์ค์ํ ๊ธฐ์ฌ์์.
์คํ์์ค๋ฅผ ๊ธฐ์ฌํ 2๊ฐ์ง ๊ฒฝํ
์์ ๋ง์๋๋ ธ๋ฏ์ด, ์คํ์์ค์ ๊ธฐ์ฌํ๋ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๋ค์ํด์. ์ฌ๋ฌ๋ถ๋ค์๊ฒ ์ด์ผ๊ธฐํ๋ฉฐ ๊ธฐ์ฌ ๊ณผ์ ์ ๋ํด ์์๋ณผ 2๊ฐ์ ์คํ์์ค ๊ธฐ์ฌ ๊ฒฝํ์ ๊ฐ์ ธ์์ด์.
์ฒซ ๋ฒ์งธ, ์คํ์์ค ๋ฉ์ธํ ์ด๋(Maintainer)์๊ฒ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ์ํ์ฌ ์ค๋ํ๊ณ ๊ธฐ์ฌํ ๊ฒฝํ์ด๊ณ , ๋ ๋ฒ์งธ๋ ๊ฐ๋ฐ ์ค์ ๋ฐ๊ฒฌํ ๋ฒ๊ทธ๋ฅผ ๊ฐ์ ํ๊ณ ๊ธฐ์ฌํ ๊ฒฝํ์ด์์.
์ฒซ ๋ฒ์งธ, ์๋ก์ด ๊ธฐ๋ฅ์ ์ ์ํ์ฌ ๊ธฐ์ฌํ ๊ฒฝํ
์ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ๋ฌธ์ํํ ๋ ์ฃผ๋ก VitePress๋ฅผ ์ฌ์ฉํด์. VitePress๋ Vue ๊ธฐ๋ฐ์ผ๋ก ์ ์ ๋ฌธ์๋ฅผ ์์ฑํ๋ ํ๋ ์์ํฌ๋ก Vite, Rollup ๋ฑ ์ฌ๋ฌ ๊ท๋ชจ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๊ณต์ ๋ฌธ์ ์์ฑ์ ํ์ฉ๋๋ ํ๋ ์์ํฌ์ด์์.
์ ๊ฐ ๊ฐ๋ฐํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ํญ์ NPM์ ํตํด ๋ฐฐํฌ๋์๊ธฐ ๋๋ฌธ์, ๋ฌธ์์ Nav Social Links์ NPM ๋งํฌ๋ฅผ ์ถ๊ฐํ๊ณ ์ ํ์ด์. ๊ทธ๋ฐ๋ฐ discord, facebook, github, instagram ๋ฑ ๋ค์ํ ์์ ๋งํฌ ์ต์ ์ด ์ ๊ณต๋๊ณ ์์์ง๋ง, NPM ๋งํฌ๋ ์๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์ด์. VitePress๊ฐ ์ฃผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ณต์ ๋ฌธ์๋ก ์ฌ์ฉ๋๋ค๋ ์ ์์ NPM ๋งํฌ๊ฐ ์๋ค๋ ๊ฒ์ ๋ถํธํ ์ผ์ด์์ฃ .
๋ฌผ๋ก , ์ปค์คํ ๊ธฐ๋ฅ์ ์ด์ฉํด NPM ๋ก๊ณ ์ด๋ฏธ์ง๋ฅผ ์ฝ์ ํ๋ ๋ฐฉ๋ฒ์ด ์๊ธด ํด์. ๊ทธ๋ฌ๋ ์ด ๋ฐฉ์์ ๋ฒ๊ฑฐ๋ก์์. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ ๋๋ง๋ค NPM ๋ก๊ณ ๋ฅผ ์ปค์คํ ์ผ๋ก ์ถ๊ฐํ๋ ์์ ์ ๋ฐ๋ณตํด์ผ ํ๊ธฐ ๋๋ฌธ์ด์์. ๊ทธ๋์ ์ ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ง์ ๊ธฐ์ฌ๋ฅผ ํด๋ณด๊ธฐ๋ก ๊ฒฐ์ฌํ์ด์.
์ด์ฒ๋ผ ๋ถ๋ช ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ถํธํ ์ ํน์ ๊ฐ์ ํ๋ฉด ์ข์ ์ ์ด ์์๊ฑฐ์์, ์ด๋ ค๋ถ๋ค๋ ๋ง์ด์ฃ .
ํ์ง๋ง, ์ ์ ๊ฐ์ ์๊ฐ์ ๊ฐ์ง ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค๋ ์ด๋ฏธ ๋น์ทํ ์๋๋ฅผ ํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์ด์. NPM๋ฟ๋ง ์๋๋ผ GitLab, Reddit, TikTok ๋ฑ ๋ค๋ฅธ ์์ ๋งํฌ๋ ์ถ๊ฐํ๋ ค๋ ์๋๊ฐ ์์์ง๋ง, ๋ฉ์ธํ ์ด๋๊ฐ ์ด๋ฅผ ๊ฑฐ์ ํ ์ด๋ ฅ์ด ์์ด์. ๋ฉ์ธํ ์ด๋๋ ์ปค์คํ ๊ธฐ๋ฅ์ ํตํด ์ด๋ฌํ ์๊ตฌ๋ฅผ ์ถฉ์กฑ์ํฌ ์ ์๋ค๊ณ ํ๋จํด ์๋ก์ด ์์ ๋งํฌ๋ฅผ ์ถ๊ฐํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ๋ ๊ฑฐ์์.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ , ์ ๋ NPM์ด ๋ค๋ฅธ ์์ ๋งํฌ์๋ ๋ค๋ฅด๋ค๊ณ ์๊ฐ์ ํ์ด์. NPM์ ๋จ์ํ ์์ ๋งํฌ๊ฐ ์๋๋ผ, ๋๋ถ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฐฐํฌ๋๋ ํ๋ซํผ์ผ๋ก ์ฌ์ฉ์๋ค์๊ฒ ์ค์ง์ ์ธ ๊ฐ์น ํน์ ์ฌ์ฉ์ฑ์ ์ ๊ณตํ ์ ์๋ค๊ณ ์๊ฐํ์ด์. ๊ทธ๋์ ์ ๋ ํฌ๊ธฐํ์ง ์๊ณ Github Issue๋ฅผ ์์ฑํด NPM ํ ๋ง๊ฐ ์ ํ์ํ์ง์ ๋ํด ๋ ผ๋ฆฌ์ ์ผ๋ก ์ค๋ํ๊ณ ์ ํ์ด์.
์ด์ฒ๋ผ ๋ถํธํ ์ ํน์ ๊ฐ์ ํ๊ณ ์ ํ๋ ์ ์ ์ ๋ณด, ์ ๊ธฐํ๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
ํด๋น ์ด์์๋ โ๋๋ถ๋ถ์ NPM ํจํค์ง(๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ฅผ ๋ฌธ์ํํ๋๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ, NPM์ ๊ณต์์ ์ผ๋ก ํฌํจํ๋ฉด ์ฌ์ฉ์ ๋ชจ๋์๊ฒ ํฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.โ๋ผ๋ ํต์ฌ ๋ฉ์์ง๋ฅผ ๋ด์์ต๋๋ค. ๋ํ, ์ด ์์ ์ ์ด๋ป๊ฒ ์งํํ ๊ฒ์ธ์ง์ ๋ํด ์ค๋ช ํ์ด์.
๊ฒฐ๊ตญ, ์ ์ ์์ฒญ์ ๋ฐ์๋ค์ฌ์ก๊ณ , contribution welcome ๋ผ๋ฒจ์ด ๋ฌ๋ฆฐ ์ด์๋ก ์น์ธ์ ๋ฐ๊ฒ ๋์์ต๋๋ค. ๋น๋ก ๋ฉ์ธํ ์ด๋๊ฐ ์ฒ์์๋ ์ถ๊ฐ ์์ ๋งํฌ ์ต์ ์ ๋ ์ด์ ๋ฐ์ง ์๊ฒ ๋ค๊ณ ํ์ง๋ง, NPM์ ์ค์์ฑ์ ๊ฐ์กฐํ๋ฉฐ ์ด์๋ฅผ ์์ฑํ ๊ฒฐ๊ณผ, ์ค๋ํ ์ ์์๊ณ ๊ธฐ์ฌ๋ฅผ ํ ์ ์์์ด์.
์ด์ฒ๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ถํธํ์ ๊ฐ์ ์ ์ ๋ฐ๊ฒฌํด๋ณด์ ์ ์ด ์์ผ์ค ๊ฑฐ์์
ํด๋น ๊ฒฝํ์ ํตํด์ ์์ ์๊ฒ, ์๊ฒฌ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ ๋ฌํ๊ณ ๋์ ํ๋ ๊ฒ
์ด ๊ฒฝํ์ ํฌ๊ธฐํ์ง ์๊ณ ์์ ์ ์๊ฒฌ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ ๋ฌํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ค์ํ์ง ๊นจ๋ซ๊ฒ ํด์ฃผ์์ต๋๋ค. ์์ ๋ถํธ์์ ์์๋ ๊ธฐ์ฌ๊ฐ ๋ง์ ์ฌ์ฉ์๋ค์๊ฒ ์ค์ง์ ์ธ ๋์์ด ๋ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๊ณ , ์ด๋ ์คํ์์ค ๊ธฐ์ฌ์ ํฐ ๋ณด๋ ์ค ํ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ ๋ฒ์งธ, ๊ฐ๋ฐ ์ค ๋ฐ๊ฒฌํ ๋ฒ๊ทธ๋ฅผ ๊ฐ์ ํ๊ณ ๊ธฐ์ฌํ ๊ฒฝํ
๋ฌธ์ ๋ฅผ ํด๊ฒฐ์ ํ์ํ ์ ๋ณด(ํํธ) ์ฐพ๊ธฐ
์ฌ๋ฌ๋ถ๋ ๊ฐ๋ฐ ์ค ์๋ํ์ง ์์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํด ํธ๋ฌ๋ธ ์ํ ์ ํ๋ค, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฒด์์ ๋ฐ์ํ๋ ๋ฒ๊ทธ์์ ๋ฐ๊ฒฌํ ๊ฒฝํ์ด ์์๊ฑฐ์์. ํฐ ๊ท๋ชจ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๋ฐ ๋ฒ๊ทธ๊ฐ ์๊ธฐ ๋ง๋ จ์ธ๋ฐ์, ์ ์ญ์ TanStack Query๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ฒ๊ทธ๋ฅผ ๋ง์ฃผ์น๊ฒ ๋์๊ณ , ์ด๋ฅผ ๊ฐ์ ํด ๊ธฐ์ฌํ๋ ๊ฒฝํ์ด ์์ด์.
์ด ๋ฒ๊ทธ๋ ๋์๋ฆฌ ํ๋ก์ ํธ์์ TanStack Query์ useQueries๋ฅผ ์ฌ์ฉํด ์ด๋๋ฏผ ํ์ด์ง๋ฅผ ๊ฐ๋ฐํ๋ ์ค ๋ฐ๊ฒฌํ๊ฒ ๋์์ด์.
์ ์ฝ๋๋ ์ด์์ง(์ด๋๋ฏผ)์๊ฒ๋ง ์ผ์ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด skipToken์ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ฑด๋ถ๋ก ๊ฐ์ ธ์ค๋๋ก ๋ถ๊ธฐ์ฒ๋ฆฌํ ์ฝ๋์์. ๊ทธ๋ฌ๋ useQueries์์ skipToken์ ์ฌ์ฉํ๋ฉด ๋ฐํ๋๋ ๋ฐ์ดํฐ์ ํ์ ์ด unknown์ผ๋ก ์ถ๋ก ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ด์.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ๊ทธ๋ก ์์ฌ์ ์ํ์๋ ๋๋ฒ๊น ํ๋ ์์ฒญ๋ ์๊ฐ์ ์๋ชจํ์ต๋๋ค. ๊ท๋ชจ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๋ ์์ฌ์ด ํ์ํด์
๋ค๋ฅธ ํ ์์๋ ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ํ์ธํ๊ณ ๋๋ฒ๊น ํ ๊ฒฐ๊ณผ, skipToken์ ์ฌ์ฉํ ๋ ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๊ธด๋ค๋ ๊ฒฐ๋ก ์ ์ด๋ฅด๋ ์ต๋๋ค. ์ฒ์์๋ ์ ๊ฐ useQueries๋ฅผ ์๋ชป ์ฌ์ฉํ ๊ฒ์ด ์๋๊ฐ ์ถ์ด ์ดํด๋ณด์์ง๋ง, ๋ฌธ์ ์ ์ ํ์ ํ ์ ์์์ด์. ์ด๋ก์ธํด ์์ฒญ๋ ์๊ฐ์ด ์์๋์ด์.
๋ง์ ์๊ฐ์ ์ฌ์ฉํด์์ผ ๋ฒ๊ทธ๋ก ์์ฌํ๊ฒ ๋์๊ณ , ํ์ธํ๊ธฐ ์ํด GitHub Issue๋ฅผ ์ดํด๋ดค์ด์. 3์ 6์ผ, ์ด๋ฏธ ์ด ๋ฒ๊ทธ๊ฐ ๋ค๋ฅธ ๊ฐ๋ฐ์์ ์ํด ๋ณด๊ณ ๋ ์ํ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์์ต๋๋ค. ์ด์ ๋ฌธ์ ์ ์ ํ์ ํ์ฌ skipToken์ ์ฌ์ฉํ์ง ์๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ๊ฒ ๋์ด์.
ํ์ง๋ง, ์ฌ๊ธฐ์ ๋๋ด๋ฉด ์ ์ ๋ฌธ์ ๋ง ์์์ ์ผ๋ก ํด๊ฒฐํ๊ฑฐ์์, ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์ ๋ชจ๋๊ฐ ๊ฒช์ ์ ์๊ณ , ๊ฐ์ ํ์์ฑ์ ๋๊ผ์ด์.
๋ก์ปฌ ํ๊ฒฝ์ ํ๋ก์ ํธ๋ฅผ ์ค์ ํ๊ณ ์ฝ๋๋ฅผ ์ด์ด๋ณธ ์๊ฐ, ๋ฐฉ๋ํ ์ฝ๋์ ํ๋ก์ ํธ ๊ท๋ชจ์ ๊น์ง ๋๋์ต๋๋ค. ์ด ์คํ์์ค ํ๋ก์ ํธ๋ ์๋ง์ ํจํค์ง๊ฐ ๋ชจ๋ ธ๋ ํฌ(Monorepo)๋ก ๊ตฌ์ฑ๋์ด ์์๊ณ , Vue, Svelte, Solid, React, Angular ๋ฑ ์ฌ๋ฌ ํ๋ ์์ํฌ๋ฅผ ์ด๋ํฐ ํ์์ผ๋ก ์ง์ํ๋ ์์ฒญ๋ ๊ท๋ชจ์์ต๋๋ค.
์ด๋์๋ถํฐ ๋ด์ผ ํ ์ง ๋ง๋งํ์ง๋ง, ๋ฌธ์ ๋ useQueries ํ์ ์ถ๋ก ์ ์๋ค๊ณ ์๊ฐํ๊ณ , ๊ด๋ จ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๊ธฐ ์์ํ์ต๋๋ค.
ํด๊ฒฐ์ ์ํด ๋จ์ํ ๊ฐ์ค์ ์ธ์ฐ๊ณ ๊ด๋ จ ์ฝ๋๋ฅผ ๊ณต๋ถํ๊ณ ์ ํ์ด์. ์ด๋ ์คํ์์ค ๋ฌธ์ ํด๊ฒฐ์ ์ํ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋์์ด์.
์ด๋ค๊ฐ์? ์ฝ๋๋ง ๋ด๋ ์ฝ์ง ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์ฃ ? ์ ๋ ๊ทธ๋ฌ์ต๋๋ค. useQueries๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ง ์ต์ํ๋ ์ ๋ก์๋, ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฝ๋์ ๋ฉ์ปค๋์ฆ๊ณผ ํ์ ์ ์ธ์ ์ดํดํ๋ ๋ฐ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ ธ์ด์.
๊ท๋ชจ๊ฐ ํฐ ์คํ์์ค ํ๋ก์ ํธ๋ ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ดํดํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์๋นํ ์๊ฐ์ด ์๋ชจ๋ ์ ์์ด์. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ํด๊ฒฐํ๋ ๋ฐ ํ์ํ ๊ฒ์ **โํํธ ์ฐพ๊ธฐโ**์์. ๋น์ทํ ์ด์๊ฐ ์์๋์ง, ์ด์ ์ ๋๊ตฐ๊ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ์๋ํ ๊ธฐ๋ก์ด ์๋์ง, ๋๋ ๋ฉ์ธํ ์ด๋๊ฐ ๋จ๊ธด ์ ์ฉํ ๋๊ธ์ด ์๋์ง๋ฅผ ์ฐพ์๋ณด๋ ๊ฒ์ด์ฃ .
์ด์ ์ ์ด์ ์ ์ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํ PR์ ์ฐพ์ ์ ์์์ด์. as const๋ฅผ ์ฌ์ฉํด ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ ์ธํ๋ฉด ํ์ ์ถ๋ก ์ด ์ ์์ ์ผ๋ก ์๋ํ ์ ์๋ค๋ ์ ๋ณด๋ฅผ ์ป์์ฃ . ์ฌ๊ธฐ์ ํํธ๋ฅผ ์ป์ด, ์ ๋ useQueries ๋ด๋ถ์์ ์ด ์๋ฆฌ๋ฅผ ์ ์ฉํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ด์.
๊ฒฐ๊ณผ์ ์ผ๋ก๋ ๋จ ํ ์ค ์์ ์ผ๋ก ์ด ๋ฒ๊ทธ๋ฅผ ๊ฐ์ ํ ์ ์์์ด์. ๋์๋ณด๋ฉด, ๊ฐ๋จํ ๋ฌธ์ ์์ง๋ง, ๊ทธ ๊ณผ์ ์์ ๋ฌธ์ ๋ฅผ ๋ถ์ํ๊ณ ํ์ํ ์ ๋ณด๋ฅผ ๋ชจ์ผ๋ ๊ณผ์ ์ด ์ผ๋ง๋ ์ค์ํ์ง ๊นจ๋ฌ์์ด์.
์คํ์์ค ๊ธฐ์ฌ๋ก ์ฑ์ฅํ ์
์ง๊ธ๊น์ง ์คํ์์ค ๊ธฐ์ฌ ํ๋์ ํ๋ฉด์ ์ฃผ๋ณ ๋ถ๋ค์๊ฒ ์ฌ๋ฌ ์ง๋ฌธ์ ๋ฐ์์ด์. ๊ทธ ์ค์์ ์ ์ผ ๋น์ค์ด ๋์ ์ง๋ฌธ์ โ๊ทธ๋์ ์คํ์์ค ๊ธฐ์ฌํ๋ฉด ์ป๋ ๊ฒ ๋ญ๊ฐ์?โ๋ผ๋ ์ง๋ฌธ์ด์์. ์คํ์์ค ๊ธฐ์ฌ ํ๋์ ํตํด ์ ๊ฐ ์ป์ ๊ธฐ์ ์ ์ธ ์ฑ์ฅ๊ณผ ๊ฐ์ธ์ ์ธ ์ฑ์ฅ์ ์ด์ผ๊ธฐํด๋ณด๊ณ ์ ํด์.
๊ธฐ์ ์ ์ธ ์ฑ์ฅ
์คํ์์ค ๊ธฐ์ฌ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋๋ ๋ด๊ฐ ๊ธฐ์ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ๊น์ด ์๊ฒ ์ดํดํ ์ ์๋ค๋ ์ ์ ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ณผ์ ์์ ์์ฐ์ค๋ฝ๊ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋งค์ปค๋์ฆ, ๊ตฌ์กฐ, ๊ทธ๋ฆฌ๊ณ ๋ด๋ถ ๋์ ์๋ฆฌ๋ฅผ ํ์ ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ๊ฒฝํ์ ๋จ์ํ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์์ ๋ฒ์ด๋, ๊ทธ๊ฒ์ ์ดํดํ๊ณ ๊ฐ์ ํ ์ ์๋ ์์ค์ผ๋ก ๊ธฐ์ ์ญ๋์ ๋ฐ์ ํ ์ ์์ด์.
๋ค์ํ ๊ธฐ์ ์ ๊ฐ์ ์ ์ผ๋ก ๊ฒฝํํ ์ ์์ด์. ์๋ฅผ ๋ค์ด, TanStack Query์ ๊ธฐ์ฌํ๋ฉด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ด๋ถ ๋์๋ฟ๋ง ์๋๋ผ, ๋ชจ๋ ธ๋ ํฌ ์ํคํ ์ณ, ํ ์คํธ ์ฝ๋ ์์ฑ, NX CI์ ๊ฐ์ ๋ค์ํ ๊ฐ๋ฐ ํ๊ฒฝ ๋ฐ ๋๊ตฌ๋ค์ ๊ฒฝํํ ์ ์์์ด์. ์ด๋ฌํ ๊ฒฝํ์ ์๋ก์ด ๊ธฐ์ ์ ๋ํ ์ดํด๋๋ฅผ ๋์ด๊ณ , ๋ค์ํ ๋๊ตฌ์ ํ๊ฒฝ์์ ์์ ํ๋ ๊ฒฝํ์ ํ ์ ์์์ด์.
๊ฐ์ธ์ ์ธ ์ฑ์ฅ
์คํ์์ค ๊ธฐ์ฌ๋ฅผ ํตํด ์ป์ ๊ฒ์ ๊ธฐ์ ์ ์ธ ์ฑ์ฅ๋ฟ๋ง์ด ์๋๋ผ ๊ฐ์ธ์ ์ผ๋ก๋ ๋ง์ ์ฑ์ฅ์ ์ด๋ค์ด์.
์ฒซ์งธ๋ก, ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค. ์คํ์์ค ํ๋ก์ ํธ์์๋ ๋ด๊ฐ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๊ฐ ๋ช ํํ์ง ์๊ฑฐ๋, ์ฒ์ ์ ํ๋ ๋ณต์กํ ๋ฌธ์ ๋ค์ด ๋ง์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๋ ๊ณผ์ ์์ ๋ ผ๋ฆฌ์ ์ฌ๊ณ ์ ์ฐฝ์์ ์ธ ์ ๊ทผ ๋ฐฉ๋ฒ์ ๊ธฐ๋ฅด๊ฒ ๋์์ด์.
๋์งธ๋ก, ์์ ๊ฐ์ด ์๊ฒผ์ต๋๋ค. ์ฒ์์๋ ๋ด๊ฐ ์ด ํ๋ก์ ํธ์ ๊ธฐ์ฌํ ์ ์์๊น ํ๋ ๋๋ ค์์ด ์์์ง๋ง, ์์ ๊ธฐ์ฌ๋ถํฐ ์์ํ์ฌ ์ ์ฐจ ๋ ํฐ ๊ธฐ์ฌ๋ก ์ด์ด์ง๋ ๊ณผ์ ์ ํตํด ๋๋ ์ค์ํ ๋ถ๋ถ์ ๊ฐ์ ํ ์ ์๋ค๋ ์์ ๊ฐ์ ์ป๊ฒ ๋์์ต๋๋ค. ์ด๋ฌํ ์์ ๊ฐ์ ์๋ก์ด ๋์ ์ ๋ํ ๋๋ ค์์ ๊ทน๋ณตํ๊ณ , ๋ ํฐ ๋ชฉํ๋ฅผ ์ค์ ํ๋ ๋ฐ ์ค์ํ๊ฒ ์์ฉํ์ด์.
๋ง์น๋ฉฐ
์คํ์์ค์ ๊ธฐ์ฌํ๋ ๋ฐฉ๋ฒ์ ์ ๋ง ๋ค์ํด์. ๋จ์ํ ๋ฒ๊ทธ๋ฅผ ๊ฐ์ ํ๊ฑฐ๋ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๋ ๊ฒ์ ๊ทธ์น์ง ์๊ณ , ๋ฌธ์ ์์ฑ, ์ค๋ฅ ์ ๋ณด, ๋ฌธ์ ๋ฒ์ญ ๋ฑ ๋ค์ํ ํํ๋ก ์ด๋ฃจ์ด์ง ์ ์์ด์. ์ด๋ฌํ ๊ธฐ์ฌ๋ ํ๋ก์ ํธ์ ๊ธฐ์ ์ ํฅ์๋ฟ๋ง ์๋๋ผ, ์ปค๋ฎค๋ํฐ ์ ์ฒด์ ๋ฐ์ ์๋ ํฐ ๊ธฐ์ฌ๋ฅผ ํ๊ฒ๋ผ์.
๊ฐ๋ฐ ์ค์ ๋ฐ์ํ๋ ๋ฒ๊ทธ๊ฐ ๋จ์ํ ๋์ ์ค์๋ผ๊ณ ์๊ฐํ๊ธฐ ์ฌ์ธ ์ ์์ง๋ง, ๋๋ก๋ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฒด์ ๋ฌธ์ ์ผ ๊ฐ๋ฅ์ฑ๋ ์์ด์. ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ ๋ขฐ๊ฐ ํฌ๋ค ๋ณด๋, "๋ด๊ฐ ๋ญ๊ฐ ์๋ชปํ๊ฒ ์ง"๋ผ๊ณ ์๊ฐํ ์ ์์ง๋ง, ๋๋ก๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฌํ๊ณ ๊ฒํ ํด๋ณด๋ ๋จ๊ณ๋ ํ์ํ๋ค๊ณ ์๊ฐํด์.
์คํ์์ค ๊ธฐ์ฌ์ ๋ํด ์ ๊ทผํ๋ ๋ฐฉ๋ฒ
- ์์ ์๊ฒ ๋์ ํ๊ธฐ
- ํด๋น ๊ฒฝํ์ ํตํด์ ์์ ์๊ฒ, ์๊ฒฌ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ ๋ฌํ๊ณ ๋์ ํ๋ ๊ฒ
- ๋ฌธ์ ๋ฅผ ํด๊ฒฐ์ ํ์ํ ์ ๋ณด(ํํธ) ์ฐพ๊ธฐ
์คํ์์ค ๊ธฐ์ฌ๋ฅผ ๋ ์ฝ๊ณ ์ฌ๋ฏธ์๊ฒ ํ๋ ๋ฐฉ๋ฒ
- ์ฌ์ฉํ๊ณ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ์ฌํ๊ธฐ
์์ ์ด ์ค์ ๋ก ์ฌ์ฉํ๋ ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ์ฌํด๋ณด์ธ์. ์ด๋ฏธ ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ๋ฐฐ๊ฒฝ ์ง์์ด ์๊ธฐ ๋๋ฌธ์, ๊ธฐ์ฌ ํ๋์ด ๋ ์ฝ๊ณ ์ฆ๊ฒ๊ฒ ๋๊ปด์ง ๊ฒ์ ๋๋ค. ํนํ, ์์ฃผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด๋ ์ต์ํ ์์ญ์์ ๊ฐ์ ์ ์ ์ฐพ๋๋ค๋ฉด ๋ ํฐ ๋๊ธฐ๋ถ์ฌ๊ฐ ๋ ์ ์์ด์.
- ์์ ๊ธฐ์ฌ๋ถํฐ ์์ํด๋ณด๊ธฐ
๊ธฐ์ฌ๋ ๋ฐ๋์ ํฐ ๋ณํ๋ ๋ณต์กํ ์ฝ๋ ์์ฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํ๋ ๊ฒ์ด ์๋๋๋ค. ์คํ ์์ , ๋งํฌ ์์ , ํ๊ตญ์ด ๋ฒ์ญ ๋ฑ ๋ฌธ์์์ ์์ํ ์ ์๋ ์์ ๊ธฐ์ฌ๋ ๋งค์ฐ ์ค์ํด์. ๋ํ, ํ ์คํธ ์ฝ๋ ์์ฑ์ด๋ ๊ฐ๋ฐ ํ๊ฒฝ ๊ฐ์ ๊ณผ ๊ฐ์ ์์ ๋ ํ๋ฅญํ ๊ธฐ์ฌ์์. ์์ ๊ธฐ์ฌ๋ ์ฒซ๊ฑธ์์ด ๋ ์ ์์ผ๋ฉฐ, ์ ์ฐจ ๋ ํฐ ์ญํ ๋ก ์ด์ด์ง ์ ์์ด์.
- ์์ฌํ์ง ์๊ธฐ
"์ฌ์ํ ๊ธฐ์ฌ์ธ๋ฐ ์๋ฏธ๊ฐ ์์๊น?", "๋ณ๊ฒ ์๋๋ฐ ์ด๋ฐ ๊ธฐ์ฌ๊ฐ ํ์ํ ๊น?", "๋ด ๊ธฐ์ฌ๋ฅผ ๋ฐ์์ฃผ์ง ์์ผ๋ฉด ์ด๋กํ์ง?" ๋ฑ์ ๊ฑฑ์ ์ ํ์ง ์์๋ ๋ผ์. ์คํ์์ค ์ปค๋ฎค๋ํฐ์์๋ ์์ ๊ธฐ์ฌ๋ ์๋, ๊ด์ฌ์ด ๋ชจ๋ ์์คํ๊ณ ์ค์ํด์. ๋ชจ๋ ๊ธฐ์ฌ๋ ํ์๋ฐ๊ณ , ๋๊ตฐ๊ฐ์๊ฒ๋ ํฐ ๋์์ด ๋ ์ ์์ด์.
์คํ์์ค ๊ธฐ์ฌ๋ ์ฌ๋ฌ๋ถ๋ ์ง๊ธ ๋น์ฅ ์์ํ ์ ์์ด์. ์์ ๊ธฐ์ฌ๋ผ๋ ์์ํด ๋ณด๋ ๊ฑด ์ด๋จ๊น์? ์ด๋ฅผ ํตํด ์คํ์์ค ์ํ๊ณ์ ๊ธฐ์ฌํจ๊ณผ ๋์์, ์์ ์ ์ฑ์ฅ์ํค๋ ์์คํ ๊ฒฝํ์ ์์ ์ ์์ ๊ฑฐ์์.
ํ๊ตญ์ ์คํ์์ค ํ๋ก์ ํธ
ํ๊ตญ์ ๊ธฐ์ , ๋จ์ฒด, ํน์ ๊ฐ์ธ์ด ๊ฐ๋ฐํ๊ณ ์๋ ํ๋ก ํธ์๋ ์คํ์์ค ํ๋ก์ ํธ๋ฅผ ์๊ฐํ๊ณ ์ ํฉ๋๋ค. ์ด ํ๋ก์ ํธ๋ค์ ํ์ฌ ํ๋ฐํ๊ฒ ๊ฐ๋ฐ ์ค์ด๋ฉฐ, ์คํ์์ค ๊ธฐ์ฌ๋ฅผ ์ ๊ทน์ ์ผ๋ก ์์ฉํ๊ณ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ๋ ์ฝ๊ฒ ์ ๊ทผํ๊ณ ๋์ ํด๋ณผ ์ ์๋ ํ๋ก์ ํธ์ ๋๋ค.